1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
#![allow(non_camel_case_types, non_snake_case)]
use crate::co;
use crate::decl::*;
use crate::kernel::ffi_types::*;
use crate::ole::privs::*;
use crate::prelude::*;
use crate::vt::*;
/// [`IActionCollection`](crate::IActionCollection) virtual table.
#[repr(C)]
pub struct IActionCollectionVT {
pub IDispatchVT: IDispatchVT,
pub get_Count: fn(COMPTR, *mut i32) -> HRES,
pub get_Item: fn(COMPTR, i32, *mut COMPTR) -> HRES,
pub get__NewEnum: fn(COMPTR, *mut COMPTR) -> HRES,
pub get_XmlText: fn(COMPTR, *mut PSTR) -> HRES,
pub put_XmlText: fn(COMPTR, PCSTR) -> HRES,
pub Create: fn(COMPTR, u32, *mut COMPTR) -> HRES,
pub Remove: fn(COMPTR, VARIANT) -> HRES,
pub Clear: fn(COMPTR) -> HRES,
pub get_Context: fn(COMPTR, *mut PSTR) -> HRES,
pub put_Context: fn(COMPTR, PCSTR) -> HRES,
}
com_interface! { IActionCollection: "02820e19-7b98-4ed2-b2e8-fdccceff619b";
/// [`IActionCollection`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nn-taskschd-iactioncollection)
/// COM interface over [`IActionCollectionVT`](crate::vt::IActionCollectionVT).
///
/// Automatically calls
/// [`Release`](https://learn.microsoft.com/en-us/windows/win32/api/unknwn/nf-unknwn-iunknown-release)
/// when the object goes out of scope.
}
impl oleaut_IDispatch for IActionCollection {}
impl taskschd_IActionCollection for IActionCollection {}
/// This trait is enabled with the `taskschd` feature, and provides methods for
/// [`IActionCollection`](crate::IActionCollection).
///
/// Prefer importing this trait through the prelude:
///
/// ```no_run
/// use winsafe::prelude::*;
/// ```
pub trait taskschd_IActionCollection: oleaut_IDispatch {
fn_com_noparm! { Clear: IActionCollectionVT;
/// [`IActionCollection::Clear`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-clear)
/// method.
}
/// [`IActionCollection::Create`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-create)
/// method.
fn Create(&self, action_type: co::TASK_ACTION_TYPE) -> HrResult<IAction> {
let mut queried = unsafe { IAction::null() };
ok_to_hrresult(
unsafe {
(vt::<IActionCollectionVT>(self).Create)(
self.ptr(),
action_type.raw(),
queried.as_mut(),
)
},
).map(|_| queried)
}
fn_com_bstr_get! { get_Context: IActionCollectionVT;
/// [`IActionCollection::get_Context`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-get_context)
/// method.
}
/// [`IActionCollection::get_Count`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-get_count)
/// method.
#[must_use]
fn get_Count(&self) -> HrResult<i32> {
let mut count = i32::default();
ok_to_hrresult(
unsafe {
(vt::<IActionCollectionVT>(self).get_Count)(
self.ptr(),
&mut count,
)
},
).map(|_| count)
}
/// [`IActionCollection::get_Item`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-get_item)
/// method.
#[must_use]
fn get_Item(&self, index: i32) -> HrResult<IAction> {
let mut queried = unsafe { IAction::null() };
ok_to_hrresult(
unsafe {
(vt::<IActionCollectionVT>(self).get_Item)(
self.ptr(),
index,
queried.as_mut(),
)
},
).map(|_| queried)
}
fn_com_bstr_get! { get_XmlText: IActionCollectionVT;
/// [`IActionCollection::get_XmlText`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-get_xmltext)
/// method.
}
fn_com_bstr_set! { put_Context: IActionCollectionVT, context;
/// [`IActionCollection::put_Context`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-put_context)
/// method.
}
fn_com_bstr_set! { put_XmlText: IActionCollectionVT, text;
/// [`IActionCollection::put_XmlText`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-put_xmltext)
/// method.
}
/// [`IActionCollection::Remove`](https://learn.microsoft.com/en-us/windows/win32/api/taskschd/nf-taskschd-iactioncollection-remove)
/// method.
fn Remove(&self, index: i32) -> HrResult<()> {
ok_to_hrresult(
unsafe {
(vt::<IActionCollectionVT>(self).Remove)(
self.ptr(),
VARIANT::new_i32(index),
)
},
)
}
}